#ifndef __ISR_H__
#define __ISR_H__


#include <gdt.h>
#include <idt.h>

typedef struct str_exp_state {
	uint_32 gs;
	uint_32 fs;
	uint_32 es;
	uint_32 ds;
	uint_32 ss;
	uint_32 edi;
	uint_32 esi;
	uint_32 ebp;
	uint_32 esp;
	uint_32 ebx;
	uint_32 edx;
	uint_32 ecx;
	uint_32 eax;
	uint_32 intcode;
	uint_32 errcode;
	uint_32 org_eip;
	uint_32 org_cs;
	uint_32 eflags;
	uint_32 org_esp;
	uint_32 org_ss;
} __attribute__((__packed__)) exp_state;

extern void dummy_isr();
extern void timer_isr();
extern int timer_ticks;
extern void debug_isr_00();
extern void debug_isr_01();
extern void debug_isr_02();
extern void debug_isr_03();
extern void debug_isr_04();
extern void debug_isr_05();
extern void debug_isr_06();
extern void debug_isr_07();
extern void debug_isr_08();
extern void debug_isr_09();
extern void debug_isr_0A();
extern void debug_isr_0B();
extern void debug_isr_0C();
extern void debug_isr_0D();
extern void debug_isr_0E();
extern void debug_isr_10();
extern void debug_isr_11();
extern void debug_isr_12();
extern void debug_isr_13();
extern void debug_isr_20();
extern void debug_isr_21();
extern void debug_isr_22();
extern void debug_isr_23();
extern void debug_isr_24();
extern void debug_isr_25();
extern void debug_isr_26();
extern void debug_isr_27();
extern void debug_isr_28();
extern void debug_isr_29();
extern void debug_isr_2A();
extern void debug_isr_2B();
extern void debug_isr_2C();
extern void debug_isr_2D();
extern void debug_isr_2E();
extern void debug_isr_2F();
extern void debug_isr_30();

#endif
